﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WpfPractice.Model;

namespace WpfPractice.ViewModel
{
    public class ListBoxWindowViewModel
    {
        public ObservableCollection<Person> PersonList { get; set; }
        public ListBoxWindowViewModel()
        {
            PersonList = new ObservableCollection<Person>()
            {  
                //如果类有一个无参数的构造函数，那么在使用对象初始化器时可以省略()。
                new Person() {Name="Alice",Age=19},
                //{Name="小明",Age=22}是因为定义了自动实现的属性
                //这种写法调用的是无参构造函数
                new Person {Name="小明",Age=22},
                new Person {Name="李华",Age=17},
                new Person {Name="张三",Age=19},
                //与上面不同，这样是调用有参构造函数
                new Person("大张",16),
                //调用无参构造函数，使用了属性的默认值
                new Person()
        };
        }
    }
    public class Person
    {
        //声明自动实现的属性
        public string Name { get; set; } = "测试姓名";
        public int Age { get; set; } = 100;
        public Person(string name, int age)
        {
            this.Name = name;
            this.Age = age;
        }
        //声明了有参构造函数后，如果在初始化的时候使用无参的
        //需要显式定义
        public Person()
        {
        }
    }
}
